package br.com.foxinline.utilitario;

import br.com.foxinline.enums.*;
import br.com.foxinline.enums.ep.Central;
import br.com.foxinline.enums.ep.RegimeBens;
import br.com.foxinline.enums.ep.TipoAtoCEP;
import br.com.foxinline.enums.ep.TipoAtoCESDI;
import br.com.foxinline.enums.ep.TipoAtoRCTO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class Enums implements Serializable {

    public List<SelectItem> tiposLogradouro() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoLogradouro tipo : TipoLogradouro.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposEndereco() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoEndereco tipo : TipoEndereco.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> sexos() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        for (Sexo sexo : Sexo.values()) {
            itens.add(new SelectItem(sexo, sexo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> estadosCivis() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (EstadoCivil estado : EstadoCivil.values()) {
            itens.add(new SelectItem(estado, estado.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposPessoa() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem("FISICA", "Pessoa Física"));
        itens.add(new SelectItem("JURIDICA", "Pessoa Jurídica"));
        return itens;
    }

    public List<SelectItem> tiposPessoaOAB() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        for (TipoPessoa tipo : TipoPessoa.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposTelefone() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoTelefone tipo : TipoTelefone.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposParcela() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoParcela tipo : TipoParcela.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposProtocolos() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        for (TipoProtocolo tipo : TipoProtocolo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tipoPesquisaImovel() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem("A", "Adquirente"));
        itens.add(new SelectItem("T", "Transmitente"));
        return itens;
    }

    public List<SelectItem> tiposMoeda() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoMoeda tipo : TipoMoeda.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposAtoCampo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoAtoCampo tipo : TipoAtoCampo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> medidasArea() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (MedidasArea tipo : MedidasArea.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposCoordenada() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoCoordenada tipo : TipoCoordenada.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> pontosNS() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem(PontosCardeais.N, PontosCardeais.N.getNome()));
        itens.add(new SelectItem(PontosCardeais.S, PontosCardeais.S.getNome()));
        return itens;
    }

    public List<SelectItem> pontosEW() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem(PontosCardeais.E, PontosCardeais.E.getNome()));
        itens.add(new SelectItem(PontosCardeais.W, PontosCardeais.W.getNome()));
        return itens;
    }

    public List<SelectItem> especieProtesto() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (EspecieProtesto tipo : EspecieProtesto.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> acaoProtesto() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (AcaoProtesto tipo : AcaoProtesto.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> aplicacoesCampo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (AplicacaoCampo tipo : AplicacaoCampo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> aplicacoesSelo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (AplicacaoSelo tipo : AplicacaoSelo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tipoContaBancarias() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoContaBancaria tipo : TipoContaBancaria.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> situacoesTramite() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (SituacaoTramite tipo : SituacaoTramite.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tipoTitulo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoTitulo tipo : TipoTitulo.values()) {
            itens.add(new SelectItem(tipo, tipo.getDescricao()));
        }
        return itens;
    }

    public List<SelectItem> central() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (Central tipo : Central.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> regimesBens() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (RegimeBens tipo : RegimeBens.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> motivosCancelamentoSelo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (MotivoCancelamentoSelo tipo : MotivoCancelamentoSelo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> nacionalidades() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (Nacionalidade tipo : Nacionalidade.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> zonasImovel() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (ZonaImovel tipo : ZonaImovel.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> atosImovel() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (AtoImovel tipo : AtoImovel.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposAtoCEP() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoAtoCEP tipo : TipoAtoCEP.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposAtoCESDI() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoAtoCESDI tipo : TipoAtoCESDI.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposAtoRCTO() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoAtoRCTO tipo : TipoAtoRCTO.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposTipoProtocolo() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem());
        for (TipoProtocolo tipo : TipoProtocolo.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

    public List<SelectItem> tiposDescontos() {
        List<SelectItem> itens = new ArrayList<SelectItem>();
        itens.add(new SelectItem(null, null));
        for (TipoDesconto tipo : TipoDesconto.values()) {
            itens.add(new SelectItem(tipo, tipo.getNome()));
        }
        return itens;
    }

}
